package com.oa.mapper;

import com.oa.pojo.Leave;
import com.oa.pojo.Reimbursement;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ReimbursementMapper {
    // 把请假的信息添加到t_leave表
    int addReimbursement(Reimbursement reimbursement);

    // 更新办理人以及任务ID
    int updateAssigneeAndTask(
            @Param("insId") String insId,
            @Param("taskId") String taskId,
            @Param("assignee") String assignee);

    // 根据用户ID查询当前用户发起的任务
    List<Reimbursement> queryMyInitiate(@Param("initiator") String initiator);

    // 查看我已审核的任务
    List<Reimbursement> queryMyReviewed(@Param("assignee") String assignee);

    // 根据用户ID查询当前用户需要审批的任务
    List<Reimbursement> queryWaitMyApprove(@Param("assigneeId") String assigneeId);

    // 根据任务ID查询一条任务的具体详情
    Reimbursement queryMyTaskByTaskId(@Param("taskId") String taskId);

    // 结束任务后更新状态
    int updateStatus(@Param("procInstId") String procInstId, @Param("status") String status);

    // 任务办理结束将办理人设为null
    int updateAssigneeByTask(@Param("taskId") String taskId, @Param("assignee") String assignee);

    // 根据任务ID查看申请报销的金额
    Double queryMoney(@Param("proInsID") String proInsID);

    // 获取当前办理人
    String getAssigneeByProcInstId(@Param("proInsID") String proInsID);
}
